Turing Machine - определение. Что такое Turing Machine
Display virtual keyboard interface

Что (кто) такое Turing Machine - определение

ABSTRACT COMPUTATION MODEL; MATHEMATICAL MODEL OF COMPUTATION THAT DEFINES AN ABSTRACT MACHINE WHICH MANIPULATES SYMBOLS ON A STRIP OF TAPE ACCORDING TO A TABLE OF RULES
Turing Machine; Turing Machine simulator; Universal computation; Turing machines; Deterministic Turing machine; Universal computer; K-string Turing machine with input and output; Turing Machines; The Turing Machine; Universal computing machine; Turing-computable function; Turing table; A-machine

Turing Machine         
<computability> A hypothetical machine defined in 1935-6 by Alan Turing and used for computability theory proofs. It consists of an infinitely long "tape" with symbols (chosen from some finite set) written at regular intervals. A pointer marks the current position and the machine is in one of a finite set of "internal states". At each step the machine reads the symbol at the current position on the tape. For each combination of current state and symbol read, a program specifies the new state and either a symbol to write to the tape or a direction to move the pointer (left or right) or to halt. In an alternative scheme, the machine writes a symbol to the tape *and* moves at each step. This can be encoded as a write state followed by a move state for the write-or-move machine. If the write-and-move machine is also given a distance to move then it can emulate an write-or-move program by using states with a distance of zero. A further variation is whether halting is an action like writing or moving or whether it is a special state. [What was Turing's original definition?] Without loss of generality, the symbol set can be limited to just "0" and "1" and the machine can be restricted to start on the leftmost 1 of the leftmost string of 1s with strings of 1s being separated by a single 0. The tape may be infinite in one direction only, with the understanding that the machine will halt if it tries to move off the other end. All computer instruction sets, high level languages and computer architectures, including parallel processors, can be shown to be equivalent to a Turing Machine and thus equivalent to each other in the sense that any problem that one can solve, any other can solve given sufficient time and memory. Turing generalised the idea of the Turing Machine to a "Universal Turing Machine" which was programmed to read instructions, as well as data, off the tape, thus giving rise to the idea of a general-purpose programmable computing device. This idea still exists in modern computer design with low level microcode which directs the reading and decoding of higher level machine code instructions. A busy beaver is one kind of Turing Machine program. Dr. Hava Siegelmann of Technion reported in Science of 28 Apr 1995 that she has found a mathematically rigorous class of machines, based on ideas from chaos theory and {neural networks}, that are more powerful than Turing Machines. Sir Roger Penrose of Oxford University has argued that the brain can compute things that a Turing Machine cannot, which would mean that it would be impossible to create {artificial intelligence}. Dr. Siegelmann's work suggests that this is true only for conventional computers and may not cover {neural networks}. See also Turing tar-pit, finite state machine. (1995-05-10)
Turing machine         
A Turing machine is a mathematical model of computation describing an abstract machineMinsky 1967:107 "In his 1936 paper, A. M.
Turing machine         
¦ noun a mathematical model of a hypothetical computing machine which can use a predefined set of rules to determine a result from a set of input variables.
Origin
named after the English mathematician Alan Turing (1912-54).

Википедия

Turing machine

A Turing machine is a mathematical model of computation describing an abstract machine that manipulates symbols on a strip of tape according to a table of rules. Despite the model's simplicity, it is capable of implementing any computer algorithm.

The machine operates on an infinite memory tape divided into discrete cells, each of which can hold a single symbol drawn from a finite set of symbols called the alphabet of the machine. It has a "head" that, at any point in the machine's operation, is positioned over one of these cells, and a "state" selected from a finite set of states. At each step of its operation, the head reads the symbol in its cell. Then, based on the symbol and the machine's own present state, the machine writes a symbol into the same cell, and moves the head one step to the left or the right, or halts the computation. The choice of which replacement symbol to write and which direction to move is based on a finite table that specifies what to do for each combination of the current state and the symbol that is read.

The Turing machine was invented in 1936 by Alan Turing, who called it an "a-machine" (automatic machine). It was Turing's Doctoral advisor, Alonzo Church, who later coined the term "Turing machine" in a review. With this model, Turing was able to answer two questions in the negative:

  • Does a machine exist that can determine whether any arbitrary machine on its tape is "circular" (e.g., freezes, or fails to continue its computational task)?
  • Does a machine exist that can determine whether any arbitrary machine on its tape ever prints a given symbol?

Thus by providing a mathematical description of a very simple device capable of arbitrary computations, he was able to prove properties of computation in general—and in particular, the uncomputability of the Entscheidungsproblem ('decision problem').

Turing machines proved the existence of fundamental limitations on the power of mechanical computation. While they can express arbitrary computations, their minimalist design makes them unsuitable for computation in practice: real-world computers are based on different designs that, unlike Turing machines, use random-access memory.

Turing completeness is the ability for a system of instructions to simulate a Turing machine. A programming language that is Turing complete is theoretically capable of expressing all tasks accomplishable by computers; nearly all programming languages are Turing complete if the limitations of finite memory are ignored.